﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	///<summary>
	///(Общ)
	///</summary>
	[DataContract]
	public enum ВидыРегламентныхОпераций
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
	///<summary>
	///(регл)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"6fa3f2b2-09fb-414e-8bde-f0b40a941914\", \"Представление\":\"ВосстановлениеСостоянияРасчетовПриобретение\"}")]
		ВосстановлениеСостоянияРасчетовПриобретение = 0,//Восстановление состояния расчетов приобретение
	///<summary>
	///(регл)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"0228dee4-7824-4fab-b27e-cbb08bf71806\", \"Представление\":\"ВосстановлениеСостоянияРасчетовРеализация\"}")]
		ВосстановлениеСостоянияРасчетовРеализация = 1,//Восстановление состояния расчетов реализация
	///<summary>
	///(общ)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"24082bf8-8d44-49a1-b928-260d91f61643\", \"Представление\":\"ПроведениеПоПартиям\"}")]
		ПроведениеПоПартиям = 2,//Проведение по партиям
	///<summary>
	///(Регл)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"ffb52d42-c6ee-4fa9-8985-4f5b3362485a\", \"Представление\":\"ПереоценкаВалютныхСчетов\"}")]
		ПереоценкаВалютныхСчетов = 3,//Переоценка валютных счетов
	///<summary>
	///(Регл)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"1229e9ef-c7db-4730-8a6c-09c78f36d2dc\", \"Представление\":\"КорректировкиПриВалютныхРасчетах\"}")]
		КорректировкиПриВалютныхРасчетах = 4,//Корректировки при валютных расчетах
	///<summary>
	///(Регл)
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"99290b87-a994-438e-a113-c4e0b8de54a3\", \"Представление\":\"СуммовыеРазницы\"}")]
		СуммовыеРазницы = 5,//Суммовые разницы
		[EnumMember(Value = "{\"Ссылка\":\"c19f1174-c76f-4f57-aa45-e949b6366011\", \"Представление\":\"ПроведениеДокументовПоНДС\"}")]
		ПроведениеДокументовПоНДС = 6,//Проведение документов по НДС
	}
	public static partial class ВидыРегламентныхОпераций_Значения//:ПеречислениеСсылка
	{
		///<summary>
		///(регл)
		///</summary>
		public static readonly Guid ВосстановлениеСостоянияРасчетовПриобретение = new Guid("b4f0de8b-940a-1419-414e-09fb6fa3f2b2");//Восстановление состояния расчетов приобретение
		///<summary>
		///(регл)
		///</summary>
		public static readonly Guid ВосстановлениеСостоянияРасчетовРеализация = new Guid("b0cb7eb2-f78b-0618-4fab-78240228dee4");//Восстановление состояния расчетов реализация
		///<summary>
		///(общ)
		///</summary>
		public static readonly Guid ПроведениеПоПартиям = new Guid("0d2628b9-f691-4316-49a1-8d4424082bf8");//Проведение по партиям
		///<summary>
		///(Регл)
		///</summary>
		public static readonly Guid ПереоценкаВалютныхСчетов = new Guid("5b4f8589-6233-5a48-4fa9-c6eeffb52d42");//Переоценка валютных счетов
		///<summary>
		///(Регл)
		///</summary>
		public static readonly Guid КорректировкиПриВалютныхРасчетах = new Guid("c7096c8a-368f-dcd2-4730-c7db1229e9ef");//Корректировки при валютных расчетах
		///<summary>
		///(Регл)
		///</summary>
		public static readonly Guid СуммовыеРазницы = new Guid("e0c413a1-deb8-a354-438e-a99499290b87");//Суммовые разницы
		public static readonly Guid ПроведениеДокументовПоНДС = new Guid("49e945aa-36b6-1160-4f57-c76fc19f1174");//Проведение документов по НДС
		public static ВидыРегламентныхОпераций Получить(this ВидыРегламентныхОпераций Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыРегламентныхОпераций Получить(this ВидыРегламентныхОпераций Значение, Guid Ссылка)
		{
			if(Ссылка == ВосстановлениеСостоянияРасчетовПриобретение)
			{
				return ВидыРегламентныхОпераций.ВосстановлениеСостоянияРасчетовПриобретение;
			}
			else if(Ссылка == ВосстановлениеСостоянияРасчетовРеализация)
			{
				return ВидыРегламентныхОпераций.ВосстановлениеСостоянияРасчетовРеализация;
			}
			else if(Ссылка == ПроведениеПоПартиям)
			{
				return ВидыРегламентныхОпераций.ПроведениеПоПартиям;
			}
			else if(Ссылка == ПереоценкаВалютныхСчетов)
			{
				return ВидыРегламентныхОпераций.ПереоценкаВалютныхСчетов;
			}
			else if(Ссылка == КорректировкиПриВалютныхРасчетах)
			{
				return ВидыРегламентныхОпераций.КорректировкиПриВалютныхРасчетах;
			}
			else if(Ссылка == СуммовыеРазницы)
			{
				return ВидыРегламентныхОпераций.СуммовыеРазницы;
			}
			else if(Ссылка == ПроведениеДокументовПоНДС)
			{
				return ВидыРегламентныхОпераций.ПроведениеДокументовПоНДС;
			}
			return ВидыРегламентныхОпераций.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыРегламентныхОпераций Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыРегламентныхОпераций Значение)
		{
			switch (Значение)
			{
				case ВидыРегламентныхОпераций.ВосстановлениеСостоянияРасчетовПриобретение: return ВосстановлениеСостоянияРасчетовПриобретение;
				case ВидыРегламентныхОпераций.ВосстановлениеСостоянияРасчетовРеализация: return ВосстановлениеСостоянияРасчетовРеализация;
				case ВидыРегламентныхОпераций.ПроведениеПоПартиям: return ПроведениеПоПартиям;
				case ВидыРегламентныхОпераций.ПереоценкаВалютныхСчетов: return ПереоценкаВалютныхСчетов;
				case ВидыРегламентныхОпераций.КорректировкиПриВалютныхРасчетах: return КорректировкиПриВалютныхРасчетах;
				case ВидыРегламентныхОпераций.СуммовыеРазницы: return СуммовыеРазницы;
				case ВидыРегламентныхОпераций.ПроведениеДокументовПоНДС: return ПроведениеДокументовПоНДС;
			}
			return Guid.Empty;
		}
	}
}